package com.wiz.web.dao.mapper;

import org.apache.ibatis.annotations.Param;

import com.wiz.web.vo.criteria.AccountChargeHistoryCriteria;
import com.wiz.web.vo.to.AccountAmountHistoryTO;
import com.wiz.web.vo.to.AccountPointHistoryTO;

public interface AccountMapper {

	/**
	 * 增加冻结金额
	 * @param memberId
	 * @param frozenAmount 加数
	 * @return
	 */
	int addFrozenAmount(@Param("memberId") String memberId,@Param("frozenAmount") double frozenAmount);
	
	/**
	 * 减少冻结金额
	 * @param memberId
	 * @param frozenAmount 减数
	 * @return
	 */
	int subFrozenAmount(@Param("memberId") String memberId,@Param("frozenAmount") double frozenAmount);

	/**
	 * 扣除金额
	 * @param memberId
	 * @param subAmount
	 * @return
	 */
	int subAmount(@Param("memberId") String memberId,@Param("subAmount") double subAmount);

	/**
	 * 增加金额
	 * @param memberId
	 * @param addAmount
	 * @return
	 */
	int addAmount(@Param("memberId") String memberId,@Param("addAmount") double addAmount);
	
	/**
	 * 为用户积分
	 * @param memberId
	 * @param point
	 * @return
	 */
	int addPoint(@Param("memberId") String memberId,@Param("point") double point);
	
	/**
	 * 扣除积分
	 * @param memberId
	 * @param point
	 * @return
	 */
	int subPoint(@Param("memberId") String memberId,@Param("point") int point);
	
	/**
	 * 新增资金流水
	 * @param to
	 * @return
	 */
	int addAmountHistory(AccountAmountHistoryTO to);
	
	/**
	 * 更新用户金额限制流水
	 * @param to
	 * @return
	 */
	int updateAmountLimitHistoryByMember(@Param("memberId") String memberId,@Param("amount") double amount);
	
	/**
	 * 更新用户总充值金额
	 * @param to
	 * @return
	 */
	int updateTotalChargeyByMember(@Param("memberId") String memberId,@Param("amount") double amount);
	
	/**
	 * 更新用户总消费金额
	 * @param to
	 * @return
	 */
	int updateTotalPaidByMember(@Param("memberId") String memberId,@Param("amount") double amount);
	
	/**
	 * 新增积分流水
	 * @param to
	 * @return
	 */
	int addPointHistory(AccountPointHistoryTO to);
	
	/**
	 * 新增充值流水
	 * @param chargeCriteria
	 * @return
	 */
	Integer addChargeHistory(AccountChargeHistoryCriteria chargeCriteria);
}
